import request from '@/utils/request'
import { setTokenInfo, removeTokenInfo } from '@/utils/storage'

export const sendCode = (mobile) => {
	return async (dispath) => {
		const res = await request({
            url: `/sms/codes/${mobile}`,
            method: 'get'
        })

	}
}


export const saveToken = (payload) => {
    return {
        type:'login/token',
        payload,
    }
}


export const login = (data) => {
    return async dispatch => {
        const res = await request({
            url: '/authorizations',
            method: 'post',
            data
        })

        
        /*
            保存token在redux中(内存中存储token)
                使token基本响应式, 当改变token时可以第一时间获取到token变化
        */ 
        dispatch(saveToken(res.data))

        /*
            本地存储token, 持久化Token,当页面退出在进入, token不会丢失, 但不具备响应式
                能力, 当token变化, 不会自动发现token变化
        */ 
        setTokenInfo(res.data)
    }
}

export const logout = () => {
    return async dispatch => {
        // 移除本地token
        removeTokenInfo()

        // 移除redux中的token
        dispatch({
            type: 'login/logout',
        })
    }
}